﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Entidades.Utils
{
    public class ComparadorDetalleTablaPosiciones : IComparer<DetalleTablaPosicionesEntity>
    {
        public int Compare(DetalleTablaPosicionesEntity x, DetalleTablaPosicionesEntity y)
        {
            if (x == null)
            {
                if (y == null)
                    // si x is null e y is null, son iguales. 
                    return 0;
                else
                    // si x is null e y no lo es, y va antes. 
                    return 1;
            }
            else
            {
                // si x no es null...
                if (y == null)
                    // ...e y es null, x va antes.
                    return -1;
                else
                {
                    // compara por puntaje
                    int retval = x.Puntaje.CompareTo(y.Puntaje);
                    if (retval != 0)
                        // si no tienen el mismo puntaje, el mas alto va antes
                        return retval * -1;
                    else
                        // si tienen el mismo puntaje, se ordena alfabeticamente por nombre de usuario
                        return x.Boleta.Usuario.Login.CompareTo(y.Boleta.Usuario.Login);
                }
            }
        }
    }
}
